/*************************************************************************
 *                                                                       *
 * This file is part of the FreeMAPs distribution.  For full copyright   *
 * information, see COPYRIGHT and COPYING.LESSER.                        *
 *                                                                       *
 * Author:           sqbang                                              *
 * Email:            sqbang@ustc.edu                                     *
 * Date:             2015.08.06                                          *
 * Description:      tells a surface is boundary or interface            *
 *                                                                       *
 *************************************************************************/

//declaration header
#include "COMMON/enum/ProblemType.h"

//COMMON headers
#include "COMMON/tbox/StringToEnum.h"

namespace FreeMAPs
{

namespace Utilities
{

template<>
void
init_string_to_enum(
    Bimap<std::string, ProblemType>& se)
{
    se.clear();

    se.insert ("STRUCTURED_MESH_PROBLEM",         ProblemType::STRUCTURED_MESH_PROBLEM);
    se.insert ("UNSTRUCTURED_MESH_PROBLEM",       ProblemType::UNSTRUCTURED_MESH_PROBLEM);
    se.insert ("HYBRIDMESH_PRLBLEM",              ProblemType::HYBRIDMESH_PRLBLEM);
    se.insert ("MESHLESS_PROBLEM",                ProblemType::MESHLESS_PROBLEM);
    se.insert ("INVERSE_HEAT_CONDUCTION_PROBLEM", ProblemType::INVERSE_HEAT_CONDUCTION_PROBLEM);
    se.insert ("SCRIPT_FOR_HTSY_2D",              ProblemType::SCRIPT_FOR_HTSY_2D);
    se.insert ("SCRIPT_FOR_HTSY_3D",              ProblemType::SCRIPT_FOR_HTSY_3D);
    se.insert ("TEST",                            ProblemType::TEST);

    se.insert ("INVALID_VALUE", ProblemType::INVALID_VALUE);
}

} //namespace Utilities

} //namespace FreeMAPs
